/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.ucue.ptc.gco.ws;

import edu.ucue.ptc.gco.mdl.Cargo;
import edu.ucue.ptc.gco.ngc.CargoManagerLocal;
import edu.ucue.ptc.gco.ngc.UsuarioManagerLocal;
import edu.ucue.ptc.gco.util.AtributoInvalidoException;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;

/**
 *
 * @author CHRISTIAN
 */
@WebService(serviceName = "CargoWebService")
@Stateless()
public class CargoWebService {
    @EJB
    private CargoManagerLocal ejbRefCargo;
    @EJB
    private UsuarioManagerLocal ejbRefUsuario;
    
    @WebMethod(operationName = "crearCargo")
    public void crearCargo(@WebParam(name = "cargo") Cargo cargo,@WebParam(name = "nombreUsuario") String nombreUsuario,@WebParam(name = "contrasenaUsuario") String contrasenaUsuario) throws AtributoInvalidoException{
        
        ejbRefUsuario.existeUsuario(nombreUsuario, contrasenaUsuario);
        ejbRefCargo.crearCargo(cargo);
    }

    @WebMethod(operationName = "actualizarCargo")
    public void actualizarCargo(@WebParam(name = "cargo") Cargo cargo,@WebParam(name = "nombreUsuario") String nombreUsuario,@WebParam(name = "contrasenaUsuario") String contrasenaUsuario) throws AtributoInvalidoException{
        ejbRefUsuario.existeUsuario(nombreUsuario, contrasenaUsuario);
        ejbRefCargo.actualizarCargo(cargo);
    }

    @WebMethod(operationName = "eliminarCargo")
    public void eliminarCargo(@WebParam(name = "cargo") Cargo cargo,@WebParam(name = "nombreUsuario") String nombreUsuario,@WebParam(name = "contrasenaUsuario") String contrasenaUsuario) throws AtributoInvalidoException{
        ejbRefUsuario.existeUsuario(nombreUsuario, contrasenaUsuario);
        ejbRefCargo.eliminarCargo(cargo);
    }

    @WebMethod(operationName = "testCargo")
    public void testCargo(@WebParam(name = "id") int id,@WebParam(name = "nombreUsuario") String nombreUsuario,@WebParam(name = "contrasenaUsuario") String contrasenaUsuario) throws AtributoInvalidoException{
        Cargo p = new Cargo();
        p.setNombre("nuevo cargo");
        p.setSueldo(200.0);
        ejbRefCargo.crearCargo(p);
    }    
    
    @WebMethod(operationName = "listarTodosCargos")
    public List<Cargo> listarTodosCargos(@WebParam(name = "nombreUsuario") String nombreUsuario,@WebParam(name = "contrasenaUsuario") String contrasenaUsuario) throws AtributoInvalidoException{
        ejbRefUsuario.existeUsuario(nombreUsuario, contrasenaUsuario);
        return ejbRefCargo.listarCargo();
    }

    @WebMethod(operationName = "obtenerPorIdCargo")
    public Cargo obtenerPorIdCargo(@WebParam(name = "idCargo") int idCargo,@WebParam(name = "nombreUsuario") String nombreUsuario,@WebParam(name = "contrasenaUsuario") String contrasenaUsuario) throws AtributoInvalidoException{
        ejbRefUsuario.existeUsuario(nombreUsuario, contrasenaUsuario);
        return ejbRefCargo.obtenerCargoPorId(idCargo);
    }
    
    @WebMethod(operationName = "listarCargoWhere")
    public List<Cargo> listarCargoWhere(@WebParam(name = "where") String where,@WebParam(name = "nombreUsuario") String nombreUsuario,@WebParam(name = "contrasenaUsuario") String contrasenaUsuario) throws AtributoInvalidoException{
        ejbRefUsuario.existeUsuario(nombreUsuario, contrasenaUsuario);
        return ejbRefCargo.listarCargoWhere(where);
    }
}
